{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 10,
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 100/100 [00:20<00:00,  4.97it/s]\n"
     ]
    }
   ],
   "source": [
    "from tqdm import tqdm\n",
    "from random import random, randint\n",
    "from time import sleep\n",
    "bar = tqdm(total=100)\n",
    "# bar.set_description('下载零件案外')\n",
    "# bar.set_postfix(loss=random(), gen=randint(1, 999), str='详细信息',\n",
    "#              lst=[1, 2])\n",
    "\n",
    "\n",
    "for i in range(100):\n",
    "    bar.update(1)\n",
    "    sleep(0.2)\n",
    "bar.close()\n"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(4, 2)\n",
      "[0 1]\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "x = np.array([[1,2],\n",
    "              [3,4],\n",
    "              [0,3],\n",
    "              [3,1]])\n",
    "print(x.shape)\n",
    "m = np.min(x, axis=0)\n",
    "print(m)\n"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[1.53549038 2.31901888 3.47964183]\n",
      " [1.24060388 2.40815585 3.42043673]\n",
      " [1.85051383 2.03149615 3.16417368]]\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "a = np.array([1,2,3])\n",
    "b = np.array([2,3,4])\n",
    "a = np.tile(a, (3,1))\n",
    "b = np.tile(b, (3,1))\n",
    "\n",
    "c = np.random.uniform(a,b)\n",
    "print(c)\n"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[1 1 1 1 1 1 1 1 1 1]\n"
     ]
    }
   ],
   "source": [
    "a = [1]*10\n",
    "b = np.array(a)\n",
    "print(b)"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "slice(1, 5, None)\n",
      "[1, 2, 3, 4]\n"
     ]
    }
   ],
   "source": [
    "array = range(10)\n",
    "sli = slice(1,5)\n",
    "print(sli)\n",
    "print(list(array[sli]))\n",
    "\n"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[3 5 7]\n",
      "[2, 7, 2]\n",
      "2 7 2\n",
      "3\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "x = np.array([1,2,3,4,5,6,7])\n",
    "sli = slice(2,7,2)\n",
    "print(x[sli])\n",
    "print(list(sli.indices(len(x))))\n",
    "print(*sli.indices(len(x)))\n",
    "print(len(range(*sli.indices(len(x)))))"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "ndarray\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "def f(x):\n",
    "    if type(x) == int:\n",
    "        return 'int'\n",
    "    if type(x) == np.ndarray:\n",
    "        return 'ndarray'\n",
    "\n",
    "print(f(np.array([2])))"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "12\n",
      "123\n"
     ]
    }
   ],
   "source": [
    "from typing import Type, ClassVar\n",
    "class C_1:\n",
    "    a = 12\n",
    "\n",
    "class C_2:\n",
    "    pass\n",
    "\n",
    "class C_2:\n",
    "    b = 123\n",
    "\n",
    "    def f1(self, c:C_1):\n",
    "        return c.a\n",
    "\n",
    "    def f2(self, c:C_2):\n",
    "        return c.b\n",
    "\n",
    "\n",
    "c1 = C_1()\n",
    "c2 = C_2()\n",
    "\n",
    "print(c2.f1(c1))\n",
    "print(c2.f2(c2))\n",
    "\n"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[5 1 0 6 2 3 7 4]\n",
      "[[2]\n",
      " [3]\n",
      " [4]\n",
      " [4]]\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "x = np.array([[4], [3],[5],[7],[10],[2],[4],[8]])\n",
    "s = np.argsort(x, axis=0, kind='quicksort')\n",
    "s = s.flatten()\n",
    "print(s)\n",
    "# 最小的一半\n",
    "print(x[s[:4]])"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[3 2]\n"
     ]
    }
   ],
   "source": [
    "x = np.array([[4], [3],[4],[7],[10],[2],[4],[8]])\n",
    "\n",
    "median = np.median(x)\n",
    "print(x[x<median])\n"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "outputs": [
    {
     "data": {
      "text/plain": "<Figure size 432x288 with 1 Axes>",
      "image/png": "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\n"
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "\n",
    "x = np.array([[3],[1],[5],[2],[4]])\n",
    "plt.plot(x)\n",
    "plt.show()\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "\n"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  }
 ],
 "metadata": {
  "kernelspec": {
   "name": "pycharm-bc608ccb",
   "language": "python",
   "display_name": "PyCharm (PlatGO)"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}